const path = require("path");
const CompressionPlugin = require("compression-webpack-plugin");

function resolve(dir) {
    return path.join(__dirname, dir);
}

// vue.config.js
module.exports = {
    // 部署生产环境和开发环境下的URL。
    // 默认情况下，Vue CLI 会假设你的应用是被部署在一个域名的根路径上
    // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上，你就需要用这个选项指定这个子路径。例如，如果你的应用被部署在 https://www.ruoyi.vip/admin/，则设置 baseUrl 为 /admin/。
    //   publicPath: process.env.NODE_ENV === 'production' ? '/web/' : '/',
    //      // 在npm run build 或 yarn build 时 ，生成文件的目录名称（要和baseUrl的生产环境路径一致）（默认dist）
    //   outputDir: 'dist',
    //   // 用于放置生成的静态资源 (js、css、img、fonts) 的；（项目打包之后，静态资源会放在这个文件夹下）
    //   assetsDir: 'static',
    // 如果你不需要生产环境的 source map，可以将其设置为 false 以加速生产环境构建。
    productionSourceMap: false,
    configureWebpack: (config) => {
        // 生产环境取消 console.log
        if (process.env.NODE_ENV === "production") {
            config.optimization.minimizer[0].options.terserOptions.compress.drop_console = false;
        }
    },
    chainWebpack: (config) => {
        config.resolve.alias
            .set("@$", resolve("src"))
            .set("@api", resolve("src/api"))
            .set("@assets", resolve("src/assets"))
            .set("@comp", resolve("src/components"))
            .set("@views", resolve("src/views"));
        // 生产环境，开启js\css压缩
        if (process.env.NODE_ENV === "production") {
            config.plugin("compressionPlugin").use(
                new CompressionPlugin({
                    test: /\.(js|css|less)$/, // 匹配文件名
                    threshold: 10240, // 对超过10k的数据压缩
                    deleteOriginalAssets: false, // 删除源文件
                }),
            );
        }
    },
    css: {
        loaderOptions: {
            less: {
                modifyVars: {
                    /* less 变量覆盖，用于自定义 ant design 主题 */
                    "primary-color": "#1890FF",
                    "link-color": "#1890FF",
                    "border-radius-base": "4px",
                },
                javascriptEnabled: true,
            },
        },
    },
    devServer: {
        port: 3001,
        proxy: {
            "/jshERP-boot": {
                // target: 'https://www.xiaoerjia.top', // 请求本地 需要jshERP-boot后台项目
                target: "http://192.168.2.9:9997", //浩 请求本地 需要jshERP-boot后台项目
                // target: 'http://192.168.1.163:9998', //唐 请求本地 需要jshERP-boot后台项目
                // target: 'http://192.168.5.5:9998', // 请求本地 需要jshERP-boot后台项目
                ws: false,
                changeOrigin: true,
            },
        },
    },
    lintOnSave: undefined,
};
